#include "stdio.h"
#include "ALGraph.h"

int visited[20];
void DFS(ALGraph G, int i)
{
    EdgeNode *p;
    int j;
    printf("v%d→", i);
    visited[i] = 1;
    p = G[i].link; // 取vi邻接表的表头指针

    while (p != NULL) // 依次搜索vi的每个邻接点
    {
        j = p->adjvex; // j为vi的一个邻接点序号
        if (!visited[j])
        {
            DFS(G, j); // 若（vi,vj)∈E(G)， 且vj未被访问过，则从开始递归调用
        }
        p = p->next; // 使p指向vi的下一个邻接点
    }
}